Custom Delegates এবং LINQ Methods

Microsoft Technologies - লিংক (LinQ) LINQ এ ফাংশন এবং ডেলিগেট (Functions and Delegates in LINQ) |
173
173

Custom Delegates এবং LINQ Methods দুটি গুরুত্বপূর্ণ ধারণা যা LINQ (Language Integrated Query) এবং C# প্রোগ্রামিংয়ের মধ্যে ব্যবহৃত হয়। LINQ ব্যবহার করার সময় কাস্টম ডিলিগেট এবং কাস্টম LINQ মেথডের সাহায্যে আপনি আরো জটিল কুয়েরি বা ডেটা প্রসেসিং করতে পারেন।

এখানে আমরা আলোচনা করব কাস্টম ডিলিগেট তৈরি করা এবং LINQ মেথডের মাধ্যমে কাস্টম অপারেশন কিভাবে সম্পন্ন করা যায়।


Custom Delegates

ডেলিগেট C# এ একটি টাইপ যা মেথডের রেফারেন্স ধারণ করে। এটি প্যারামিটার হিসেবে মেথড গ্রহণ করতে পারে এবং সেই মেথডের কার্যাবলী চালাতে পারে। যখন আপনি Custom Delegates ব্যবহার করবেন, তখন আপনি নিজের মতো মেথড সিগনেচার এবং কার্যপদ্ধতি তৈরি করতে পারবেন, যা LINQ বা অন্যান্য C# প্রোগ্রামিং টাস্কের জন্য উপযোগী হতে পারে।

Custom Delegate এর উদাহরণ:

// Custom Delegate Declaration
public delegate bool EmployeeFilter(Employee emp);

public class Employee
{
    public string Name { get; set; }
    public int Age { get; set; }
    public string Position { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        // Sample list of Employees
        List<Employee> employees = new List<Employee>
        {
            new Employee { Name = "John", Age = 25, Position = "Software Engineer" },
            new Employee { Name = "Jane", Age = 32, Position = "Manager" },
            new Employee { Name = "Jake", Age = 28, Position = "Developer" }
        };

        // Define custom delegate to filter employees older than 30
        EmployeeFilter filterOlderThan30 = emp => emp.Age > 30;

        // Use delegate to filter employees
        var filteredEmployees = employees.Where(emp => filterOlderThan30(emp)).ToList();

        // Display filtered employees
        foreach (var employee in filteredEmployees)
        {
            Console.WriteLine($"{employee.Name}, {employee.Age}");
        }
    }
}

এখানে:

  • EmployeeFilter হল একটি কাস্টম ডেলিগেট যা Employee অবজেক্টকে প্যারামিটার হিসেবে নেবে এবং একটি bool রিটার্ন করবে।
  • filterOlderThan30 হল একটি কাস্টম ডেলিগেট যা Employee অবজেক্টের বয়সের ওপর ভিত্তি করে ফিল্টার করবে।
  • Where মেথডে কাস্টম ডেলিগেটটি ব্যবহার করা হয়েছে।

LINQ Methods

LINQ মেথডগুলি হল এক ধরনের extension methods যা IEnumerable এবং IQueryable ইন্টারফেসে যোগ করা হয়। আপনি যদি LINQ এর মধ্যে কিছু কাস্টম অপারেশন করতে চান, তবে আপনি নিজেই কাস্টম LINQ মেথড তৈরি করতে পারেন। এই মেথডগুলি ডেটার উপর বিশেষ কাস্টম ফিল্টার, সিলেকশন, অথবা অন্যান্য অপারেশন করতে সহায়তা করে।

LINQ মেথডস সাধারণত অনেক ধরনের built-in অপারেশন সরবরাহ করে (যেমন Select(), Where(), OrderBy(), GroupBy(), ইত্যাদি), তবে আপনি চাইলে কাস্টম LINQ মেথডও তৈরি করতে পারেন যা একটি নির্দিষ্ট অপারেশন সম্পাদন করবে।

Custom LINQ Method উদাহরণ:

এখানে একটি কাস্টম LINQ মেথড তৈরি করার উদাহরণ দেওয়া হল যা একটি ইন্টিজার লিস্টে সমস্ত পজিটিভ নাম্বারগুলো ফিল্টার করবে:

// Custom LINQ Method Declaration
public static class CustomLinqMethods
{
    public static IEnumerable<int> FilterPositiveNumbers(this IEnumerable<int> source)
    {
        foreach (var number in source)
        {
            if (number > 0)
                yield return number;
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        // List of integers
        List<int> numbers = new List<int> { -10, 5, 0, 15, -20, 30 };

        // Use custom LINQ method
        var positiveNumbers = numbers.FilterPositiveNumbers();

        // Display filtered numbers
        foreach (var num in positiveNumbers)
        {
            Console.WriteLine(num);  // Output: 5, 15, 30
        }
    }
}

এখানে:

  • FilterPositiveNumbers একটি কাস্টম LINQ মেথড যা ইন্টিজারের লিস্টের মধ্যে পজিটিভ নাম্বারগুলো ফিল্টার করে রিটার্ন করবে।
  • this IEnumerable<int> ব্যবহার করা হয়েছে যাতে এটি একটি extension method হয়ে কাজ করে, যা আপনি যে কোনো ইন্টিজার লিস্টে ব্যবহার করতে পারেন।

LINQ এবং Custom Delegates এর সমন্বয়

LINQ কুয়েরিতে custom delegates ব্যবহার করলে আপনি কাস্টম ফিল্টারিং, ম্যানিপুলেশন বা কোনো নির্দিষ্ট লজিক প্রয়োগ করতে পারবেন যা ডিফল্ট LINQ অপারেশন দ্বারা সম্ভব নয়। যেমন, যদি আপনি একটি নির্দিষ্ট কন্ডিশনে custom delegate ব্যবহার করতে চান, তাহলে LINQ কুয়েরিতে সেটি প্রয়োগ করতে পারবেন।

Custom Delegate এবং LINQ Method এর সমন্বয়ের উদাহরণ:

// Custom Delegate
public delegate bool NumberCondition(int number);

// Custom LINQ method to apply delegate logic
public static class CustomLinqMethods
{
    public static IEnumerable<int> FilterByCondition(this IEnumerable<int> source, NumberCondition condition)
    {
        foreach (var number in source)
        {
            if (condition(number))
                yield return number;
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        // Sample list of numbers
        List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

        // Custom delegate to filter even numbers
        NumberCondition isEven = n => n % 2 == 0;

        // Use custom LINQ method to apply delegate
        var evenNumbers = numbers.FilterByCondition(isEven);

        // Display the even numbers
        foreach (var num in evenNumbers)
        {
            Console.WriteLine(num);  // Output: 2, 4, 6, 8, 10
        }
    }
}

এখানে:

  • FilterByCondition একটি কাস্টম LINQ মেথড যা custom delegate ব্যবহার করে ডেটাকে ফিল্টার করে।
  • NumberCondition ডেলিগেট ব্যবহার করা হয়েছে, যা নম্বরটি even কিনা তা যাচাই করে।

সারাংশ

  • Custom Delegates LINQ কুয়েরিতে ডেটা প্রক্রিয়ার জন্য কাস্টম লজিক প্রয়োগ করতে ব্যবহৃত হয়। ডেলিগেটগুলি সাধারণত মেথড রেফারেন্স ধারণ করে এবং বিভিন্ন কাজ সম্পাদন করতে সাহায্য করে।
  • LINQ Methods এক্সটেনশন মেথডের মাধ্যমে কাস্টম ডেটা প্রক্রিয়ার জন্য তৈরি করা যেতে পারে, যাতে আপনি বিশেষভাবে আপনার প্রয়োজনে ডেটাকে ম্যানিপুলেট করতে পারেন।
  • Custom Delegates এবং LINQ Methods একসাথে ব্যবহার করে আপনি আরো শক্তিশালী ও কাস্টমাইজড কুয়েরি এবং ডেটা ম্যানিপুলেশন করতে পারেন।
common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion